﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HotelSoft.HotelManagement_BUS;

namespace HotelSoft.HotelManagement_GUI
{
    public partial class frmQuanly_Account_Quantri : Form
    {
        // Define the CS_DROPSHADOW constant
        private const int CS_DROPSHADOW = 0x00020000;

        // Override the CreateParams property
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ClassStyle |= CS_DROPSHADOW;
                return cp;
            }
        }

        AccountDTO ACC;
        Double temp = 1;
        public frmQuanly_Account_Quantri()
        {
            InitializeComponent();
        }

        private void btnNew_Click(object sender, EventArgs e)
        {
            try
            {
                
                if (txtRe_Pass.Text.Length == 0 || txtRe_Pass.Text.Trim() == "" ||
                    txtUsername.Text.Length == 0 || txtUsername.Text.Trim() == "" ||
                    txtPassword.Text.Length == 0 || txtPassword.Text.Trim() == "")
                {
                    MessageBox.Show("Xin hãy nhập đầy đủ thông tin", "THÊM TÀI KHOẢN");
                    txtUsername.Focus();
                    return;
                }
                if (txtRe_Pass.Text.Equals(txtPassword.Text)==false)
                {
                    MessageBox.Show("Bạn nhập mật khẩu không trùng khớp, xin vui lòng nhập lại.", "THÊM TÀI KHOẢN");
                    txtRe_Pass.Focus();
                    txtRe_Pass.SelectAll();
                    return;
                }

                string AccType = "";
                if (radGiamdoc.Checked == true) AccType = "gd";
                if (radQuanly.Checked == true) AccType = "ql";
                if (radTieptan.Checked == true) AccType = "tt";
                if (radQuantri.Checked == true) AccType = "qt";


                ACC = new AccountDTO();
                ACC.USERNAME = txtUsername.Text;
                ACC.PASSWORD = txtPassword.Text;
                ACC.ROLE = AccType;
                if (AccountBUS.CheckUsername(ACC))
                {
                    MessageBox.Show("Tên tài khoản đã tồn tại, xin nhập tên tài khoản khác", "THÊM TÀI KHOẢN");
                    txtUsername.Focus();
                    txtUsername.SelectAll();
                    return;
                }
                AccountBUS.InsertAccount(ACC);
                MessageBox.Show("Đăng ký tài khoản thành công");
                LoadListView();
            }
            catch
            {
                MessageBox.Show("Lỗi cập nhật");
            }
            ResetTextbox();
        }

        private void LoadListView()
        {
            lvAccountList.Items.Clear();
            ListViewItem item;
            DataTable tbl = AccountBUS.AccountList();
            int STT = 1;
            string role="";
            string srole="";
            foreach (DataRow Dong in tbl.Rows)
            {
                item = new ListViewItem();
                item.Text = STT.ToString();
                role = Dong["Role"].ToString();
                if (role == "gd") srole = "Giám đốc";
                if (role == "ql") srole = "Quản lý";
                if (role == "tt") srole = "Tiếp tân";
                if (role == "qt") srole = "Quản trị";
                item.SubItems.Add(srole);
                item.SubItems.Add(Dong["Username"].ToString());
                //item.SubItems.Add(Dong["Password"].ToString());
                lvAccountList.Items.Add(item);
                STT++;
            }
        }

        private void ResetTextbox()
        {
            txtUsername.Text = "";
            txtPassword.Text = "";
            txtRe_Pass.Text = "";
            txtUsername.Focus();
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmQuanly_Account_Quantri_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            pannel.Visible = false;
            LoadListView();
            txtUsername.Focus();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Opacity = this.Opacity + 0.1;
            if (this.Opacity == temp)
                timer1.Enabled = false;
        }

        private void btnClosePannel_Click(object sender, EventArgs e)
        {
            pannel.Visible = false;
            txtUsername.Focus();
        }

        private void btnChiTiet_Click(object sender, EventArgs e)
        {
            pannel.Visible = true;
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (lvAccountList.SelectedItems.Count != 0)
            {
                ACC = new AccountDTO();
                ACC.USERNAME = lvAccountList.FocusedItem.SubItems[2].Text;
                AccountBUS.DeleteAccount(ACC);
                LoadListView();
            }
            else
                MessageBox.Show("Xin hãy chọn tài khoản muốn xóa", "XÓA TÀI KHOẢN");  
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
